﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Diamond
/// </summary>
/// 

namespace Bestlife.ERP.BusinessRules
{
    public class Diamond:System.Web.UI.Page
    {
        Double direect_commision;
        String user_status ;
        String Parent_Ststus ;
        Double indireect_commision;
        Double Totalbv ;
        Double TotalCommitions ;
        Double bv;
        Double Parentinderect;
        String Current_user;
        


        public Diamond()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public void Diamonds(String id, Double product_bv, Double product_pv, Double ts, String user_status)
        {
            Bestlife.ERP.DataAccess.D_bonus bns = new DataAccess.D_bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns1 = new Entities.E_Bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns2 = new Entities.E_Bonus();//(Add by chathuranga)
            Totalbv = product_bv;
            bv = product_bv;
            try
            {
                ebns1 = bns.Getbonus(id);//get user(child) totalcommition(Edit by chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )
                double T_commitioninDB = double.Parse(ebns1.T_commision.ToString());

                DataAccess.parents p1 = new DataAccess.parents();

                string parent = p1.parent(id);// add parent id (Edit by chathuranga 22-06-2012)
                ebns2 = bns.Getbonus(parent);// add parent id (Edit by chathuranga 22-06-2012)
                double parent_tot_commition = double.Parse(ebns2.T_commision.ToString());

                Parent_Ststus = (Parent_Ststus = p1.ParentDetails(id));// get parent status

                //total sales  direct commition for Diamond
                direect_commision = ((product_bv * 28) / 100);


                if (Parent_Ststus != null)
                {


                    int parent_St = int.Parse(Parent_Ststus);
                    int child_St = int.Parse(user_status);


                  
                    TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                    if (child_St > parent_St)
                    {
                        Current_user = Session["user"].ToString();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();
                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);
                        p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth add by chathuranga 04-08-2012
                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);


                    }
                    else
                        if (user_status.Equals("7") && Parent_Ststus.Equals("7"))  //  Diamond and Diamond
                        {
                            indireect_commision = 0;
                            Parentinderect = 0;
                            DataAccess.parents pr = new DataAccess.parents();
                            DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )

                            Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            // Get Current user Id
                            Current_user = Session["user"].ToString();

                            DataAccess.users crnt = new DataAccess.users();
                            String CrntID = crnt.GetUserId(Current_user);

                            p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth add by chathuranga 04-08-2012

                            if ((id == CrntID))
                            {

                                Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                            }

                            DataAccess.users usr = new DataAccess.users();
                            usr.users_level(parent, product_bv, product_pv, ts);

                        }



                        else if (user_status.Equals("7") && Parent_Ststus.Equals("8"))  //  Diamond and senior diamond
                        {
                            //total sales  direct commition for Diamond
                            indireect_commision = ((Totalbv * 4.0) / 100);// inderirect commision 

                            Parentinderect = indireect_commision + parent_tot_commition;
                            TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                            // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                            // update parent bv and cpv
                            DataAccess.parents pr = new DataAccess.parents();
                            DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            // Get Current user Id
                            Current_user = Session["user"].ToString();

                            DataAccess.users crnt = new DataAccess.users();
                            String CrntID = crnt.GetUserId(Current_user);

                            if ((id == CrntID))
                            {

                                Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                            }

                            // Update user commisions + update parent cpv+ user pv
                            // Sales.Totalsales(user_id,TotalCommisions);  

                            DataAccess.users usr = new DataAccess.users();
                            usr.users_level(parent, product_bv, product_pv, ts);



                        }

                        else if (user_status.Equals("7") && Parent_Ststus.Equals("9"))    //  Diamond and SED
                        {

                            //total sales  direct commition for 10 Diamond
                            indireect_commision = ((Totalbv * 8.0) / 100);// inderirect commision 
                            Parentinderect = indireect_commision + parent_tot_commition;
                            TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                            // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                            // update parent bv and cpv
                            DataAccess.parents pr = new DataAccess.parents();
                            DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            // Get Current user Id
                            Current_user = Session["user"].ToString();

                            DataAccess.users crnt = new DataAccess.users();
                            String CrntID = crnt.GetUserId(Current_user);

                            if ((id == CrntID))
                            {

                                Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                            }

                            // Update user commisions + update parent cpv+ user pv
                            // Sales.Totalsales(user_id,TotalCommisions);  

                            DataAccess.users usr = new DataAccess.users();
                            usr.users_level(parent, product_bv, product_pv, ts);

                        }

                        else if (user_status.Equals("7") && Parent_Ststus.Equals("10"))   //  Diamond and CD
                        {


                            //total sales  direct commition for Diamond
                            indireect_commision = ((Totalbv * 12.0) / 100);// inderirect commision 
                            Parentinderect = indireect_commision + parent_tot_commition;
                            TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                            // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                            // update parent bv and cpv
                            DataAccess.parents pr = new DataAccess.parents();
                            DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                            // Get Current user Id
                            Current_user = Session["user"].ToString();

                            DataAccess.users crnt = new DataAccess.users();
                            String CrntID = crnt.GetUserId(Current_user);

                            if ((id == CrntID))
                            {

                                Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                            }

                            // Update user commisions + update parent cpv+ user pv
                            // Sales.Totalsales(user_id,TotalCommisions);  

                            DataAccess.users usr = new DataAccess.users();
                            usr.users_level(parent, product_bv, product_pv, ts);


                        }

                }
                else if (user_status.Equals("7") && (id.Equals("1")))
                {

                    Current_user = Session["user"].ToString();
                    DataAccess.users crnt = new DataAccess.users();
                    String CrntID = crnt.GetUserId(Current_user);
                    if ((id == CrntID))
                    {

                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user
                        DataAccess.D_child ch = new DataAccess.D_child();
                        Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 
                    }

                }
            }//try

            catch (Exception err)
            {

                Response.Redirect("404.aspx?Massage=" + err.Message.ToString());
            }
        }
    }
}


